package core.reports;

/**
 * The IHost interface defines a host that a visitor can visit.
 */

public interface IHost 
{
	// Post order the visit happens last
	//pre order the visit happens first
	
	/**
	 * This method will accept a visitor and will then tell the
	 * visitor to do what he needs to do. The TraversalOrder will
	 * tell the accept in what way to visit children nodes. 
	 * 
	 * @param v This is the visitor that will be accepted.
	 * @param order This is the order to traverse the tree.  Pre order
	 * 		means you visit the node first then it's children.  Post
	 * 		order means you visit the children first, then current 
	 * 		node.
	 */
	public void accept(IVisitor v, TraversalOrder order);
}
